#if 0 
分别用指针数组和二维数组生成二维空间，存储数据并释放。 比如， 数据如下：
a 
abc
abcdefg
#endif

#include <iostream>
using namespace std;

int main ()
{
    //(1)指针数组
    char **p = new char*[3];
    p[0] = "a";
    p[1] = "abc";
    p[2] = "abcdefg";

    for(int i=0; i<3; i++)
    {
        cout<<p[i]<<endl;
    }
    delete []p;
    cout<<"------------------"<<endl;

    //(2) 二维数组
    char (*q)[7] = new char[3][7];
    for(int i=0; i<3; i++)
    for(int j=0; j<7; j++)
        q[i][j] = ' ';

    char a = 'a';
    q[0][0] = 'a';
    for(int i=0; i<3; i++)
        q[1][i] = a++;
    a = 'a';
    for(int i=0; i<7; i++)
        q[2][i] = a++;

    for(int i=0; i<3; i++)
    {
        for(int j=0; j<7; j++)
        {
            cout<<q[i][j];
        }
        cout<<endl;
    }
    delete []q; //delete 自动释放内存空间

    //总结 new、delete的格式。
    // int *p = new int(2);        //单变量     delete p;
    // int (*p)[5] = new int[4][5];//二维数组   delete []p;  开创多维数组的用法
    // int **p = new int*[6];      //指针数组   delete []p; 不管多维的，都是用delete[]q, 总之到底都是算一维的，递归delete

    return 0;
}


int Sum(int a, int b)
{
    a += b;
    return a;
}
